package proteus.servlets;

import java.io.IOException;
import java.util.Collection;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import junit.framework.Assert;
import proteus.excepcion.DAOExcepcion;
import proteus.modelo.HorarioXCancha;
import proteus.modelo.Local;
import proteus.negocio.CanchaNegocio;
import proteus.util.Funciones;

/**
 * Servlet implementation class BuscarCanchaServlet
 */
@WebServlet("/BuscarCanchaServlet")
public class BuscarCanchaServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public BuscarCanchaServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		CanchaNegocio neg = new CanchaNegocio();

		try {
			Collection<Local> encontrados = neg.listarDistritos();	
			
			// Guardando datos en el scope SESSION
			HttpSession session = request.getSession();
			session.setAttribute("DISTRITOS", encontrados);
			request.setAttribute("REQDISTRITO", "");
			request.setAttribute("REQfechaini", Funciones.fechaActualInicial());
			request.setAttribute("REQfechafin", Funciones.fechaActualInicial());
			request.setAttribute("REQhoraini", "25");
			request.setAttribute("REQhorafin", "25");
			request.setAttribute("REQhoraIniPM", "- Seleccione -");
			request.setAttribute("REQhoraFinPM", "- Seleccione -");
			
		} 
		catch (DAOExcepcion e) { 
		request.setAttribute(
		"MSG_ERROR", e.getMessage()); 
		}  
			RequestDispatcher rd = request.getRequestDispatcher("buscarCancha.jsp");
			// Forward llama al jsp	
			rd.forward(request, response);								
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		
		CanchaNegocio neg = new CanchaNegocio();
		
		String txtDistrito = request.getParameter("txtDistrito");
		String txtfechaini = request.getParameter("txtfechaini");
		String txtfechafin = request.getParameter("txtfechafin");
		String txthoraini = request.getParameter("cbohoraini");
		String txthorafin = request.getParameter("cbohorafin");
		
		/*  la funcion modifica las fechas a formato aaaa-mm-dd. Pruebalas*/
		String txtfechaIni = Funciones.cambiaFormatoFecha(txtfechaini);
		String txtfechaFin = Funciones.cambiaFormatoFecha(txtfechafin);						
		
		int cbohoraini = Integer.parseInt(txthoraini);
		int cbohorafin = Integer.parseInt(txthorafin);				
						
		//System.out.println(txtDistrito + txtfechaini + txtfechafin + txthoraini + txthorafin);
				
	try {
		Collection<HorarioXCancha> encontrados = neg.buscarCancha(txtDistrito, txtfechaIni, txtfechaFin, cbohoraini, cbohorafin);			
			
				// Guardando datos en el scope REQUEST
				request.setAttribute("CANCHAS", encontrados);
				//System.out.println(String.valueOf(encontrados.size())); 
			} 
		
/*	 
	catch (NumberFormatException e) { 
	// TODO Auto-generated catch block 
	e.printStackTrace();
	// en este catch se recoge el mensaje de error como una data que consigues
	} 
*/		
		catch (DAOExcepcion e) { 
				request.setAttribute("MSG_ERROR", e.getMessage()); 
				}  
		request.setAttribute("REQDISTRITO", txtDistrito);
		request.setAttribute("REQfechaini", txtfechaini); 
		request.setAttribute("REQfechafin", txtfechafin); 
		request.setAttribute("REQhoraini",  txthoraini);  
		request.setAttribute("REQhorafin",  txthorafin);
		request.setAttribute("REQhoraIniPM",  Funciones.formatoHora(cbohoraini));
		request.setAttribute("REQhoraFinPM",  Funciones.formatoHora(cbohorafin));

		RequestDispatcher rd = request.getRequestDispatcher("buscarCancha.jsp");
			// Forward llama al jsp	
			rd.forward(request, response);								
		
	}

}
